home *** CD-ROM | disk | FTP | other *** search
- #!/bin/sh
- #
- # Apache control script designed to allow an easy command line interface
- # to controlling Apache. Written by Marc Slemko, 1997/08/23
- #
- # The exit codes returned are:
- # 0 - operation completed successfully
- # 1 -
- # 2 - usage error
- # 3 - httpd could not be started
- # 4 - httpd could not be stopped
- # 5 - httpd could not be started during a restart
- # 6 - httpd could not be restarted during a restart
- # 7 - httpd could not be restarted during a graceful restart
- # 8 - configuration syntax error
- #
- # When multiple arguments are given, only the error from the _last_
- # one is reported. Run "apachectl help" for usage info
- #
- #
- # |||||||||||||||||||| START CONFIGURATION SECTION ||||||||||||||||||||
- # -------------------- --------------------
- #
- # the path to your PID file
- PIDFILE=/usr/local/apache/logs/httpd.pid
- #
- # the path to your httpd binary, including options if necessary
- HTTPD='/usr/local/apache/src/httpd'
- #
- # a command that outputs a formatted text version of the HTML at the
- # url given on the command line. Designed for lynx, however other
- # programs may work.
- LYNX="lynx -dump"
- #
- # the URL to your server's mod_status status page. If you do not
- # have one, then status and fullstatus will not work.
- STATUSURL="http://localhost/server-status"
- #
- # -------------------- --------------------
- # |||||||||||||||||||| END CONFIGURATION SECTION ||||||||||||||||||||
-
- ERROR=0
- ARGV="$@"
- if [ "x$ARGV" = "x" ] ; then
- ARGS="help"
- fi
-
- for ARG in $@ $ARGS
- do
- # check for pidfile
- if [ -f $PIDFILE ] ; then
- PID=`cat $PIDFILE`
- if [ ! "x$PID" = "x" ] && kill -0 $PID; then
- STATUS="httpd (pid $PID) running"
- RUNNING=1
- else
- STATUS="httpd (pid $PID?) not running"
- RUNNING=0
- fi
- else
- STATUS="httpd (no pid file) not running"
- RUNNING=0
- fi
-
- case $ARG in
- start)
- if [ $RUNNING -eq 1 ]; then
- echo "$0 $ARG: httpd (pid $PID) already running"
- continue
- fi
- if $HTTPD ; then
- echo "$0 $ARG: httpd started"
- else
- echo "$0 $ARG: httpd could not be started"
- ERROR=3
- fi
- ;;
- stop)
- if [ $RUNNING -eq 0 ]; then
- echo "$0 $ARG: $STATUS"
- continue
- fi
- if kill $PID ; then
- echo "$0 $ARG: httpd stopped"
- else
- echo "$0 $ARG: httpd could not be stopped"
- ERROR=4
- fi
- ;;
- restart)
- if [ $RUNNING -eq 0 ]; then
- echo "$0 $ARG: httpd not running, trying to start"
- if $HTTPD ; then
- echo "$0 $ARG: httpd started"
- else
- echo "$0 $ARG: httpd could not be started"
- ERROR=5
- fi
- else
- if $HTTPD -t >/dev/null 2>&1; then
- if kill -HUP $PID ; then
- echo "$0 $ARG: httpd restarted"
- else
- echo "$0 $ARG: httpd could not be restarted"
- ERROR=6
- fi
- else
- echo "$0 $ARG: configuration broken, ignoring restart"
- echo "$0 $ARG: (run 'apachectl configtest' for details)"
- ERROR=6
- fi
- fi
- ;;
- graceful)
- if [ $RUNNING -eq 0 ]; then
- echo "$0 $ARG: httpd not running, trying to start"
- if $HTTPD ; then
- echo "$0 $ARG: httpd started"
- else
- echo "$0 $ARG: httpd could not be started"
- ERROR=5
- fi
- else
- if $HTTPD -t >/dev/null 2>&1; then
- if kill -USR1 $PID ; then
- echo "$0 $ARG: httpd gracefully restarted"
- else
- echo "$0 $ARG: httpd could not be restarted"
- ERROR=7
- fi
- else
- echo "$0 $ARG: configuration broken, ignoring restart"
- echo "$0 $ARG: (run 'apachectl configtest' for details)"
- ERROR=7
- fi
- fi
- ;;
- status)
- $LYNX $STATUSURL | awk ' /process$/ { print; exit } { print } '
- ;;
- fullstatus)
- $LYNX $STATUSURL
- ;;
- configtest)
- if $HTTPD -t; then
- :
- else
- ERROR=8
- fi
- ;;
- *)
- echo "usage: $0 (start|stop|restart|fullstatus|status|graceful|configtest|help)"
- cat <<EOF
-
- start - start httpd
- stop - stop httpd
- restart - restart httpd if running by sending a SIGHUP or start if
- not running
- fullstatus - dump a full status screen; requires lynx and mod_status enabled
- status - dump a short status screen; requires lynx and mod_status enabled
- graceful - do a graceful restart by sending a SIGUSR1 or start if not running
- configtest - do a configuration syntax test
- help - this screen
-
- EOF
- ERROR=2
- ;;
-
- esac
-
- done
-
- exit $ERROR
-
- # ====================================================================
- # Copyright (c) 1995-1999 The Apache Group. All rights reserved.
- #
- # Redistribution and use in source and binary forms, with or without
- # modification, are permitted provided that the following conditions
- # are met:
- #
- # 1. Redistributions of source code must retain the above copyright
- # notice, this list of conditions and the following disclaimer.
- #
- # 2. Redistributions in binary form must reproduce the above copyright
- # notice, this list of conditions and the following disclaimer in
- # the documentation and/or other materials provided with the
- # distribution.
- #
- # 3. All advertising materials mentioning features or use of this
- # software must display the following acknowledgment:
- # "This product includes software developed by the Apache Group
- # for use in the Apache HTTP server project (http://www.apache.org/)."
- #
- # 4. The names "Apache Server" and "Apache Group" must not be used to
- # endorse or promote products derived from this software without
- # prior written permission. For written permission, please contact
- # apache@apache.org.
- #
- # 5. Products derived from this software may not be called "Apache"
- # nor may "Apache" appear in their names without prior written
- # permission of the Apache Group.
- #
- # 6. Redistributions of any form whatsoever must retain the following
- # acknowledgment:
- # "This product includes software developed by the Apache Group
- # for use in the Apache HTTP server project (http://www.apache.org/)."
- #
- # THIS SOFTWARE IS PROVIDED BY THE APACHE GROUP ``AS IS'' AND ANY
- # EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- # PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE APACHE GROUP OR
- # ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- # NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- # STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
- # OF THE POSSIBILITY OF SUCH DAMAGE.
- # ====================================================================
- #
- # This software consists of voluntary contributions made by many
- # individuals on behalf of the Apache Group and was originally based
- # on public domain software written at the National Center for
- # Supercomputing Applications, University of Illinois, Urbana-Champaign.
- # For more information on the Apache Group and the Apache HTTP server
- # project, please see <http://www.apache.org/>.
- #
-